<?php
namespace app\index\controller;

use think\Controller;
use think\View;

/**
 * 视图
 */
class I extends Controller
{

    /**
     * 视图实例化
     */

    // 继承\think\Controller类
    public function index()
    {
        // 渲染模板输出
        return $this->fetch('hello', ['name' => 'thinkphp']);
    }

    // 助手函数
    public function a()
    {
        return view('hello', ['name'=>'thinkphp5']);
    }

    // 直接实例化视图类（不建议）
    public function b()
    {
        // 实例化视图类
        $view = new View();
        // 渲染模板输出 并赋值模板变量
        return  $view->fetch('hello', ['name'=>'我是虾米']);
    }


    /**
     * 模板引擎
     */

    public function c()
    {
        print_r(config('template'));
    }


    /**
     * 模板赋值
     */

    // assign方法
    public function d()
    {
        // 模板变量赋值
        $this->assign('name', 'ThinkPHP');
        $this->assign('email','thinkphp@qq.com');

        // 或者批量赋值
        $this->assign([
            'password' => '123123123',
            'mobile' => '18258186825',
        ]);

        // 模板输出
        return $this->fetch();
    }

    // 传入参数方法
    public function e()
    {
        // 模板变量赋值
        $this->assign('name', 'ThinkPHP');
        $this->assign('email','thinkphp@qq.com');

        // 方法fetch 及 display 均可传入模版变量
        return $this->fetch('d', [
            'password' => '123123123',
            'mobile' => '18258186825',
        ]);
    }

    public function f()
    {
        // 模板变量赋值
        $this->assign('name', 'ThinkPHP');
        $this->assign('email','thinkphp@qq.com');

        $content = '{$name}-{$email}';

        // 方法fetch 及 display 均可传入模版变量
        return $this->display($content, [
            'password' => '123123123',
            'mobile' => '18258186825',
        ]);
    }

    // 对象赋值
    public function g()
    {
        $view = $this->view;
        $view->name = '小米';
        $view->email = 'a@126.com';

        // 模板输出
        return $view->fetch('hello');
    }

    // 助手函数
    public function h()
    {
        return view('hello', [
            'name' => '美进',
            'email' => 'a@126.com',
        ]);
    }

    // share方法
    public function i()
    {
        View::share('name', '\(^o^)/~');

        // 批量赋值
        View::share(['email'=>'a@126.com', 'password'=>'333']);
    }


    /**
     * 模板渲染
     */

    // 渲染模板最常用的是使用\think\View类的fetch方法
    public function j()
    {
        // 不带任何参数
        $view = new View();
        return $view->fetch();
    }

}